/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Modelo;

import Controlador.ControlPersona;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import Controlador.Control;
import java.sql.ResultSet;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Ceci
 */
public class DatosPersona extends  Control implements ControlPersona {
     private Connection conexion;
    private PreparedStatement stmt;
    
    
    public DatosPersona () throws ClassNotFoundException {
      try {
            Class.forName(DRIVER);
            this.conexion = DriverManager.getConnection(URL,usuario,password);
            this.conexion.setAutoCommit(false);
        } catch (SQLException ex) {
            Logger.getLogger(Personas.class.getName()).log(Level.SEVERE, null, ex);
        }
    
}

        public boolean insertPersona(Personas _persona) {
          boolean respuesta = false;
       int exuteRespuesta = 0;
       try
       {
            String sql = "INSERT INTO PERSONA(NOMBRE,EDAD,GENERO,TELEFONO,DIRECCION,OCUPACION) VALUES(?,?,?,?,?,?)";
            stmt = this.conexion.prepareStatement(sql);
            stmt.setString(1,_persona.getNOMBRE());
            stmt.setInt(2,_persona.getEDAD());
            stmt.setString(3,_persona.getGENERO());
            stmt.setInt(4, _persona.getTELEFONO());
            stmt.setString(5,_persona.getDIRECCION());
            stmt.setString(6,_persona.getOCUPACION());
            
            exuteRespuesta = stmt.executeUpdate();
            this.conexion.commit();
            if(exuteRespuesta >0)
            {
                respuesta = true;
                System.out.println("Inserta");
            }
          }
       catch(SQLException ex)
       {
           Logger.getLogger(DatosPersona.class.getName()).log(Level.SEVERE, null, ex);
       }
       finally
       {
           return respuesta;  
       }
        }
        
        
       
    public Personas selectPersona(String _nombre) {
        
         ResultSet rs;
        Personas per= new Personas();
        
       try{
            String sql = "SELECT * FROM PERSONA WHERE NOMBRE=? ";
            stmt = this.conexion.prepareStatement(sql);
            stmt.setString(1, _nombre);
            rs = stmt.executeQuery();
            while (rs.next())
            {
                per.setEDAD(rs.getInt("EDAD"));
                 per.setGENERO(rs.getString("GENERO"));
                 per.setTELEFONO(rs.getInt("TELEFONO"));
                  per.setDIRECCION(rs.getString("DIRECCION"));
                  per.setOCUPACION(rs.getString("OCUPACION"));
            }
            rs.close();
       }
       catch(SQLException ex)
       {
           Logger.getLogger(DatosPersona.class.getName()).log(Level.SEVERE, null, ex);
       }
       finally
       {
           return per;  
       }
    
    }
    
   public boolean eliminarPersona(Personas p) {
        boolean resp = false;
        int consul = 0;
        try {
            String sql ="DELETE FROM PERSONA WHERE NOMBRE=?";
           
            stmt = this.conexion.prepareStatement(sql);
            stmt.setString(1, p.NOMBRE);
            consul = stmt.executeUpdate();
            this.conexion.commit();
            if (consul > 0) {
                resp = true;
            }
        } catch (Exception e) {
        }
        return true;
    }
public boolean updatePersona(Personas p){
        boolean resp = false;
        int consul = 0;
        try {
            String sql=" UPDATE PERSONA SET EDAD=?,GENERO=?,TELEFONO=?,DIRECCION=?,OCUPACION=? WHERE NOMBRE=?";
            
            stmt=this.conexion.prepareStatement(sql);
            stmt.setString(6, p.NOMBRE);        
            stmt.setInt(1, p.EDAD);
            stmt.setString(2, p.GENERO);
            stmt.setInt(3, p.TELEFONO);
            stmt.setString(4, p.DIRECCION);
            stmt.setString(5, p.OCUPACION);
          
        
            consul=stmt.executeUpdate();
            this.conexion.commit();
            if (consul > 0) {
                resp = true;
            
            }
        } catch (Exception e) {
            System.out.println("error" + e.getMessage());
        }
        return resp;
    }
    
}
   


